
//#include "CPU_const.h"
#include <iolpc2378.h>

/****************************************************************************************************/
/*                       C P U _ I S R . c     F U N C T I O N     L I S T                          */
/****************************************************************************************************/
void setup_ISR_Adr(void);


__irq /*__nested*/ __arm void WDT_Handler(void);//0
//__irq /*__nested*/ __arm void SFT_Handler(void);//1
//__irq /*__nested*/ __arm void DCR_Handler(void);//2
//__irq /*__nested*/ __arm void DCT_Handler(void);//3
//__irq /*__nested*/ __arm void TIMER0_Handler(void);//4
__irq /*__nested*/ __arm void TIMER1_Handler(void);//5
__irq /*__nested*/ __arm void UART0_Handler(void);//6
__irq /*__nested*/ __arm void UART1_Handler(void);//7
__irq /*__nested*/ __arm void PWM1_Handler(void);//8
__irq /*__nested*/ __arm void I2C0_Handler(void);//9
__irq /*__nested*/ __arm void SPI_SSP0_Handler(void);//10
__irq /*__nested*/ __arm void SSP1_Handler(void);//11
__irq /*__nested*/ __arm void PLL_Handler(void);//12
__irq /*__nested*/ __arm void RTC_Handler(void);//13
__irq /*__nested*/ __arm void EINT0_Handler(void);//14
__irq /*__nested*/ __arm void EINT1_Handler(void);//15
__irq /*__nested*/ __arm void EINT2_Handler(void);//16
__irq /*__nested*/ __arm void EINT3_GPIO_Handler(void);//17
__irq /*__nested*/ __arm void ADC0_Handler(void);//18
__irq /*__nested*/ __arm void I2C1_Handler(void);//19
__irq /*__nested*/ __arm void BOD_Handler(void);//20
__irq /*__nested*/ __arm void ENET_Handler(void);//21
__irq /*__nested*/ __arm void USB_Handler(void);//22
__irq /*__nested*/ __arm void CAN_Handler(void);//23
__irq /*__nested*/ __arm void SDMMC_Handler(void);//24
__irq /*__nested*/ __arm void GPDMA_Handler(void);//25
__irq /*__nested*/ __arm void TIMER2_Handler(void);//26
__irq /*__nested*/ __arm void TIMER3_Handler(void);//27
__irq /*__nested*/ __arm void UART2_Handler(void);//28
__irq /*__nested*/ __arm void UART3_Handler(void);//29
__irq /*__nested*/ __arm void I2C2_Handler(void);//30
__irq /*__nested*/ __arm void I2S_Handler(void);//31


unsigned long ISR_Adr_Get(void (*pISR) (void));

/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/


__irq /*__nested*/ __arm void WDT_Handler(void)   { while(1); } 
//__irq /*__nested*/ __arm void SFT_Handler(void)   { while(1); } 
//__irq /*__nested*/ __arm void DCR_Handler(void)   { while(1); } 
//__irq /*__nested*/ __arm void DCT_Handler(void)   { while(1); } 
//__irq /*__nested*/ __arm void TIMER0_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void TIMER1_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void UART0_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void UART1_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void PWM1_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void I2C0_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void SPI_SSP0_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void SSP1_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void PLL_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void RTC_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void EINT0_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void EINT1_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void EINT2_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void EINT3_GPIO_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void ADC0_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void I2C1_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void BOD_Handler(void)   { while(1); }
__irq /*__nested*/ __arm void ENET_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void USB_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void CAN_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void SDMMC_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void GPDMA_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void TIMER2_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void TIMER3_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void UART2_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void UART3_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void I2C2_Handler(void)   { while(1); } 
__irq /*__nested*/ __arm void I2S_Handler(void)   { while(1); } 























void setup_ISR_Adr(void)
{
  VICVECTADDR0 = ISR_Adr_Get(WDT_Handler);
  //VICVECTADDR1 = ISR_Adr_Get(SFT_Handler); reserved for sofware interrupts only
  //VICVECTADDR2 = ISR_Adr_Get(DCR_Handler); Embedded ICE, DbgCommRx
  //VICVECTADDR3 = ISR_Adr_Get(DCT_Handler); Embedded ICE, DbgCommTx
  //VICVECTADDR4 = ISR_Adr_Get(TIMER0_Handler); DO NOT USE THEN freeRTOS!!!!!!!!!!!!!!!!!!!!
  VICVECTADDR5 = ISR_Adr_Get(TIMER1_Handler);
  VICVECTADDR6 = ISR_Adr_Get(UART0_Handler);
  VICVECTADDR7 = ISR_Adr_Get(UART1_Handler);
  VICVECTADDR8 = ISR_Adr_Get(PWM1_Handler);
  VICVECTADDR9 = ISR_Adr_Get(I2C0_Handler);
  VICVECTADDR10 = ISR_Adr_Get(SPI_SSP0_Handler);
  VICVECTADDR11 = ISR_Adr_Get(SSP1_Handler);
  VICVECTADDR12 = ISR_Adr_Get(PLL_Handler);
  VICVECTADDR13 = ISR_Adr_Get(RTC_Handler);
  VICVECTADDR14 = ISR_Adr_Get(EINT0_Handler);
  VICVECTADDR15 = ISR_Adr_Get(EINT1_Handler);
  VICVECTADDR16 = ISR_Adr_Get(EINT2_Handler);
  VICVECTADDR17 = ISR_Adr_Get(EINT3_GPIO_Handler);
  VICVECTADDR18 = ISR_Adr_Get(ADC0_Handler);
  VICVECTADDR19 = ISR_Adr_Get(I2C1_Handler);
  VICVECTADDR20 = ISR_Adr_Get(BOD_Handler);
  VICVECTADDR21 = ISR_Adr_Get(ENET_Handler);
  VICVECTADDR22 = ISR_Adr_Get(USB_Handler);
  VICVECTADDR23 = ISR_Adr_Get(CAN_Handler);
  VICVECTADDR24 = ISR_Adr_Get(SDMMC_Handler);
  VICVECTADDR25 = ISR_Adr_Get(GPDMA_Handler);
  VICVECTADDR26 = ISR_Adr_Get(TIMER2_Handler);
  VICVECTADDR27 = ISR_Adr_Get(TIMER3_Handler);
  VICVECTADDR28 = ISR_Adr_Get(UART2_Handler);
  VICVECTADDR29 = ISR_Adr_Get(UART3_Handler);
  VICVECTADDR30 = ISR_Adr_Get(I2C2_Handler);
  VICVECTADDR31 = ISR_Adr_Get(I2S_Handler);
//
}






























unsigned long ISR_Adr_Get(void (*pISR) (void))  { return (unsigned long) pISR;}
